package vue;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JToolBar;

import controleur.MonControleurBoutonOutil;
import controleur.MonControleurBoutonCouleur;

public class PaletteCouleurs extends JToolBar {
	private Dessin dessinPalette;

	PaletteCouleurs(Dessin d) {
		this.setFloatable(false);
		this.setPreferredSize(new Dimension(150, 100));
		FlowLayout fla = new FlowLayout(0, 2, 2);
		this.setLayout(fla);
		this.setBackground(new Color((int) 0xc8ddf2));
		this.dessinPalette = d;
		MonControleurBoutonCouleur mcb = new MonControleurBoutonCouleur(
				dessinPalette, this);

		// Faire une boucle qui crée des BoutonCouleur
		BoutonCouleur boutons[] = new BoutonCouleur[56];

		for (int i = 0; i < boutons.length; i++) {
			boutons[i] = new BoutonCouleur(new Color(
					(int) (Math.random() * 255), (int) (Math.random() * 255),
					(int) (Math.random() * 255)));
			boutons[i].addActionListener(mcb);
			this.add(boutons[i]);
		}

		// Fin de la génération de la palette de couleur

		JLabel jl = new JLabel("Couleur actuelle : ");
		this.add(jl);
		CouleurSelection cs = new CouleurSelection(dessinPalette);
		this.add(cs);

	}

}

class CouleurSelection extends JPanel {
	private Dessin dessinPalette;

	public CouleurSelection(Dessin d) {
		this.dessinPalette = d;
		this.setPreferredSize(new Dimension(35, 35));
	}

	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		this.setBackground(dessinPalette.getChoixCouleur());
	}
}

class BoutonCouleur extends JButton {

	public BoutonCouleur(Color c) {
		String rgb = String.valueOf(c.getRed()) + "/"
				+ String.valueOf(c.getGreen()) + "/"
				+ String.valueOf(c.getBlue());
		// System.out.println("rgb : "+rgb);
		this.setActionCommand(rgb);
		this.setPreferredSize(new Dimension(17, 17));
		this.setBackground(c);
	}

}
